14227
12740
Έχω ένα όνομα στατιστικού πίνακα ως
μήλο
Χ
μπανάνα
Γ
Ακτινίδια
ζ
Πρέπει να βάλω μήλο, μπανάνα και ακτινίδιο σε μια σειρά Φρούτα και X, Y και Z σε μια σειρά που ονομάζεται αλφάβητα.
Οποιοσδήποτε απλός μηχανισμός C # για αυτό; 
Χρησιμοποιήστε το IEnumerable . Όπου υπερφόρτωση που παρέχει το ευρετήριο.
var fruit = statsname.Where ((s, i) => i% 2 == 0). ToArray ();
var alphabets = statsname.Where ((s, i) => i% 2! = 0). ToArray ();
|
Κλέβεται από τον τρόπο λήψης εναλλακτικών στοιχείων χρησιμοποιώντας το Enumerable σε C #
var φρούτα = myArray. Πού ((t, i) => i% 2 == 0). ToArray ();
var alphabets = myArray. Πού ((t, i) => i% 2 == 1). ToArray ();
|
Αν κατάλαβα ότι ρωτάτε σωστά τι θέλετε είναι πολύ απλό:
Θέλετε να βάλετε φρούτα σε σειρά φρούτων και ίδια για αλφάβητα και εμφανίζονται εναλλακτικά σε όνομα στατιστικού πίνακα, έτσι:
για (int i = 0, j = 0; i  list = new List  () {"apple", "X", "banana", "Y", "Kiwi", "z"}
var result = list. Επιλέξτε ((l, i) => νέο {l, i})
.GroupBy (p => p.i% 2)
. Επιλέξτε (x => x. Επιλέξτε (v => v.l). ToList ())
.ToList ();
Τότε έχετε μια λίστα με λίστες:
|
λίστα  fruit = new List  ();
λίστα  alphabet = new List  ();
για (int i = 0; i  EveryOther  (IEnumerable  συλλογή)
{
χρησιμοποιώντας (var e = collection.GetEnumerator ()) {
ενώ (e.MoveNext ()) {
απόδοση απόδοσης e.Current;
e.MoveNext (); // παραλείψτε ένα
}
}
}
Μπορείτε να χρησιμοποιήσετε το System.Linq.Skip για να παραλείψετε το πρώτο στοιχείο.
string [] words = "apple X banana Y Kiwi z". Split ();
var φρούτα = EveryOther (λέξεις);
var alphabets = EveryOther (λέξεις. Παράλειψη (1));
Απλώς χρησιμοποιήστε τα ως νέα συλλογή ή καλέστε .ToArray () ή .ToList () σε αυτά:
μπροστινό (χορδή f σε φρούτα)
Κονσόλα.WriteLine (f);
string [] anArray = φρούτα.ToArray (); // χρησιμοποιώντας το System.Linq
Τώρα έχετε ό, τι χρειάζεστε.
Οι επαναληπτές είναι μέθοδοι που αποδίδουν απόδοση, βλέπε Iterators (C # Programming Guide) Αυτό είναι ένα πολύ δυνατό χαρακτηριστικό της γλώσσας. Μπορείς:
παράλειψη στοιχείων
διακοσμήστε στοιχεία
αλλαγή παραγγελίας
αλληλουχίες συνένωσης (βλέπε System.Linq.Concat)
...
|
Ακολουθεί κάποιος κωδικός εργασίας, ελπίζουμε ότι θα σας βοηθήσει:
χρησιμοποιώντας το Σύστημα;
χρησιμοποιώντας System.Collections.Generic;
χρησιμοποιώντας το System.IO;
χρησιμοποιώντας το System.Linq;
χρησιμοποιώντας το System.Text;
χρησιμοποιώντας το System.Threading.Tasks;
namespace ReadFile
{
Πρόγραμμα τάξης
{
static void ReadFile (string filePath, List  custumerNames, List  αριθμοί τηλεφώνου)
{
string line = string. Κενό;
var fileStream = νέο StreamReader (filePath);
bool isPhoneNumber = true;
ενώ ((line = fileStream.ReadLine ())! = null)
{
εάν (isPhoneNumber)
{
phoneNumbers.Add (Μετατροπή.ToInt32 (γραμμή));
isPhoneNumber = false;
}
αλλού
{
custumerNames.Προσθήκη (γραμμή);
isPhoneNumber = true;
}
}
fileStream.Close ();
}
static void Main (συμβολοσειρά [] args)
{
Console.WriteLine ("Άρχισε να διαβάζει το αρχείο ...");
Λίστα  custumersNamesList = νέα λίστα  ();
Λίστα  custumersPhonesNumbers = νέα λίστα  ();
ReadFile ("SampleFile.txt", custumersNamesList, custumersPhonesNumbers);
// Υποθέτοντας ότι και οι δύο στη λίστα έχουν το ίδιο μήκος.
για (int i = 0; i